跳转到内容

瓦片表 (Block / Floor / Obj / Deco / CellEffect)

五张瓦片表的大部分列是共用的。放在地图格子上的一切——一面墙、一块地板、一株作物、一张地毯、一个装饰、一层液体效果——都是其中某张表里的一行。

制作源表时,必须完整复制官方源表的前三行,并将你的数据从第四行开始录入。

关于列、空行和空格子

缺少的列会被填成空值。 列顺序不同时按表头名匹配。

空格子不等于空值:它会取你自己这张表第 3 行的值。这就是必须复制前三行的原因。第 3 行留空的话,_tileType 变成空、该行永远不会出现在建造菜单,category 变成空、回退到 obj,诸如此类。

id 留空的那一行会让整张表在那里截止。 不要在数据中间留空行。

ID 与 alias

id 用任意正整数都行。256–65535 是最合适的区间:存档文件会更小。避开 Elin 本体使用的区间 0–255。

  • 两个 mod 用了同一个 id 会互相覆盖那一行,后加载的赢。
  • alias 必须唯一,凡是按名字引用这一行的地方都会使用:贴图文件名、defBlock / bridgeBlock / autoFloor、种子。建议加上你的 mod 前缀。

共用列

类型描述
id整数唯一的数字 id,见上文。
alias文本唯一的名字,贴图、跨表引用和种子都靠它。
name_JP / name文本显示名。两个都要填name 只在日语以外的语言下作为回退。
sort整数在建造菜单页签里的位置。留空 = 排在上一行之后,所以 mod 的行会排到最后。
reqHarvest文本[]拆除它需要的 技能,等级miningdigginggatheringlumberjack。留空时回退到该表的默认值。
hp整数坚固程度;hp 越高,挖掘越久。
_tileType文本瓦片类型。Block:BlockWallWallOpenFenceFenceClosedHalfBlockSlopeStairsPillarBlockDeco。Floor:FloorFloorWaterFloorWaterShallowFloorWaterDeepBridge。Obj:ObjObjBigObjHugeTreeRoadChasmWallMountWallHangRoofDoorObjWater……拼错会让该行从建造菜单消失。
_idRenderData文本瓦片怎么画,也就决定了格子尺寸:Block 留空 / block_thin / fence / halfblock(64×64),Floor 留空 / floor_obj(64×48),Obj obj(64×64)、obj_S / obj_S flat(32×32)、obj_L / obj_LV(80×64)。
tiles整数[]精灵表里的格子号(行*100+列,就是纹理查看器显示的数字)。放了 Texture/<表名>/<alias>.png 就留空,游戏会自己填。负数表示水平翻转。
anime整数[]帧数,毫秒[,循环[,音效]] 动画。只对 Floor / Deco / CellEffect 有效;Obj 行会忽略它。
snowTile整数Block:保持默认(屋顶积雪)。Obj:>0 时被雪盖住不显示,改显示一种雪地地面。
colorMod整数材质颜色对美术的染色强度。100 = 和 Elin原版 一样染色,0 = 原样显示(手绘作物请用 0)。
colorType文本Block / Obj:alt 改用材质的第二种颜色染色,random 随机取色。
value整数基础价值。
LV整数需要的制作技能等级。
recipeKey文本[]* = 玩家第一次打开对应工作台时自动学会;- = 不会作为随机配方出现;商店名(StarterLoytel……)= 在那里作为配方卷轴出售。
factory文本[]工作台的物品 id:factory_wallfactory_blockfactory_floorworkbenchself = 快速制作,x = 永不列出,none = 不可制作。不是物品的 id 会让配方被禁用。
components文本[]材料:id[/数量], 分隔多种材料;| 表示可替代;id@tag 要求带某个 tag(chunk@soil/1);$ 标记决定颜色的材料;# 表示分类;+ 表示可选。留空或 - = 一根原木。写错会让配方被丢弃。
defMat文本图标和地图生成用的材质 alias。!alias 锁定材质。不是玩家建出来的东西的材质——那由玩家选的材料决定。
category文本建造菜单页签:wallfence → 墙;foundationfloorfloor_field → 地板;objdeco。未知值回退到 obj
tag文本[]标记。Floor:noFloornoBridgenoSnownoTransitionbeachsnowtilenonGradient。Obj:autotileseedcroprareSeedcrime。通用:hiddenRecipeoneblock_only
detail_JP / detail文本说明文字。

Block

类型描述
idThing文本拆除方块时得到的物品(blockwallfence)。
roof整数方块紧邻房间时使用的屋顶样式。
autoFloor文本挖掉方块后留下的地板 alias(留空 = 原始地面;未知 alias 会改用 floor_raw)。
concrete / transparent布尔建造相关的标记;照抄相近的官方行。
transition整数[]坡道/过渡格;-1 = 无。
soundFoot文本脚步声 id。

Floor

类型描述
defBlock文本地板被转成方块时使用的方块 alias。必填(大多数行是 block_raw)。未知 alias 会改用默认方块。
bridgeBlock文本用这种地板架桥时桥下柱子的方块 alias(pillar31)。
soundFoot文本脚步声 id(wooddirtcarpet……)。
autotilePriority整数两块相邻地板中由哪一块绘制它们之间的过渡边。
idBiome文本地图生成用的生物群系 id。必须存在。

每个地板行都会附带一个桥配方,除非 tagnoBridgefactoryx

Obj

类型描述
_growth文本[]类型,阶段帧,收获帧,收获物,最大数量——见生长
costSoil整数种植时消耗的土壤。
objType文本resourcecroptreeplant。只有 crop 有实际作用(种子的食物加成),其余只是标签。
vals整数[]vals[0] = 用哪个种子图标(种子物品皮肤列表里的编号)。
valType文本NoneGrowthMaterial。拼错按 None 处理。
matCategory文本仅地图生成时用的随机材质池。
chance整数在随机种子池里的权重(tagseed 的行)。

建造菜单

Block / Floor / Obj 行满足以下全部条件才会出现在建造菜单:

  1. _tileType 是真实的瓦片类型(不为空,不是 Marker);
  2. factory 是工作台的物品 id(factory_wallfactory_blockfactory_floorworkbench),不是 x / none
  3. 玩家已学会该配方。recipeKey = * 时玩家第一次打开那个工作台就会学会;否则可以通过挖掘同类瓦片领悟,或购买卷轴(recipeKey = 商店名);
  4. category 对应你正在看的页签。

components 决定材料,玩家选的材料决定成品的材质。

生长

_growth = 类型,阶段帧,收获帧,收获物,最大数量 能把一个 Obj 变成作物、树或杂草。类型 是生长类型:CropWheatRiceTreeWeedFlowerHerbRoseCactusChaKinokoBerryPastureSeaweed……类型写错时该行只是不会生长。

  • 阶段:植物会随时间推进阶段;大多数类型的最后一个阶段是枯萎。
  • 收获得到 收获物(物品 id,或 #分类 表示该分类的随机物品),1 到 最大数量 个。铲掉植物会掉落 components 的最后一项。
  • 种子不需要单独的物品行:Elin原版 的 seed 物品会记住它种的是哪个 Obj。往 tagseed(想要食物加成,就把 objType 设为 crop),vals 填种子图标,chance 填随机种子池权重。rareSeed 会把它排除在随机池之外。
  • 贴图:把各阶段画成一条条带放在 Texture/Obj/<alias>.png阶段帧 / 收获帧 填条带里的帧号(从 0 起)。各类型的帧排布见纹理替换与瓦片贴图。如果你用的是纹理替换槽位,这两项就是槽位号。

带 7 帧条带的最小小麦型作物:

idaliasname_JPname_growthcostSoilobjTypevalstag_idRenderDatacolorModcomponentsdefMat
3006mymod_wheatmy wheatWheat,0,5,wheat,230crop2crop,seedobj0grassgrass

材质

材质是单独一张表,自己没有贴图;见材质。新矿石只需要一行 Material:category = oretierchance 和颜色 tag——Elin原版 的矿脉会自动使用它并染色。

本地化

name / name_JP 覆盖英语和日语。其他语言由游戏在首次启动时(或在 mod 查看器里点导出文本)往你的 mod 目录写一份 LangMod/<语言>/SourceLocalization.json,每条文本一个键,例如 SourceBlock.mymod_wall.name;把值填上即可。

常见坑

  • 你表里的第 3 行是默认行。应从官方表复制过来。
  • 贴图和种子都必须有 alias;Elin原版 很多行 alias留空,但你不要留空。
  • factory 必须是存在的物品 id,components 必须写对;否则配方会消失。
  • defBlock / bridgeBlock / autoFloor 必须是存在的 alias;写错会换成兜底值。
  • 不要给 Obj 行写 anime;自带 PNG 的行不要自己填 tiles
  • 游戏启动时会重建一切;改完 xlsx 或 PNG 之后重启游戏即可。

This project is an unofficial documentation site and is not affiliated with, endorsed by, or associated with Elin or Lafrontier / Noa. All trademarks are the property of their respective owners.